package sistema.util;

import entidades.Telha;
import entidades.TelhaBase;
import java.util.Objects;

/**
 * Trabalho DAS - 2014/2015
 * @author a21210380, a21190325, a21210392
 */
public class KeyTelha {
    private final int id;
    private final Class<? extends TelhaBase> telha;
    private final int hash;

    public KeyTelha(int id, Class<? extends TelhaBase> telha) {
        this.id = id;
        this.telha = telha;
        int temp = 1;
        temp = temp + id;
        temp = temp * 31 + (telha.equals(Telha.class) ? 5 : 7);
        this.hash = temp;
    }

    @Override
    public String toString() {
        return "KeyTelha{" + "id=" + id + ", telha=" + telha + '}';
    }

    @Override
    public int hashCode() {
        return this.hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final KeyTelha other = (KeyTelha) obj;
        if (this.id != other.id) {
            return false;
        }
        return Objects.equals(this.telha, other.telha);
    }
}
